using System;
using System.Collections.Generic;
using ns26;
using ns27;

namespace Triton.Game.Mapping
{
	[Attribute38("Tutorial_06")]
	public class Tutorial_06 : TutorialEntity
	{
		public Notification m_endTurnNotifier => method_3<Notification>("m_endTurnNotifier");

		public bool m_victory => method_2<bool>("m_victory");

		public bool m_choSpeaking => method_2<bool>("m_choSpeaking");

		public Spell m_choFloatSpell => method_3<Spell>("m_choFloatSpell");

		public Tutorial_06(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Tutorial_06(IntPtr address)
			: this(address, "Tutorial_06")
		{
		}

		public new void PreloadAssets()
		{
			method_8("PreloadAssets");
		}

		public new void NotifyOfGameOver(TAG_PLAYSTATE gameResult)
		{
			method_8("NotifyOfGameOver", gameResult);
		}

		public new Spell BlowUpHero(Card card, SpellType spellType)
		{
			return method_14<Spell>("BlowUpHero", new object[2] { card, spellType });
		}

		public void CancelChoFloating()
		{
			method_8("CancelChoFloating");
		}

		public Card FindVoodooDoctorInOpposingSide()
		{
			return method_14<Card>("FindVoodooDoctorInOpposingSide", Array.Empty<object>());
		}

		public new float GetAdditionalTimeToWaitForSpells()
		{
			return method_11<float>("GetAdditionalTimeToWaitForSpells", Array.Empty<object>());
		}

		public new bool IsKeywordHelpDelayOverridden()
		{
			return method_11<bool>("IsKeywordHelpDelayOverridden", Array.Empty<object>());
		}

		public new bool NotifyOfEndTurnButtonPushed()
		{
			return method_11<bool>("NotifyOfEndTurnButtonPushed", Array.Empty<object>());
		}

		public new void NotifyOfDefeatCoinAnimation()
		{
			method_8("NotifyOfDefeatCoinAnimation");
		}

		public new List<RewardData> GetCustomRewards()
		{
			return method_14<Class271<RewardData>>("GetCustomRewards", Array.Empty<object>())?.method_25();
		}
	}
}
